1. Field of the Invention
The present invention relates to the field of computer software such as operating systems and their Command Line Interfaces. More specifically, the present invention relates to a method, system thereof, and computer usable medium for automatically generating human-readable documentation from operating system command specifications and generating webpages from specified and generated document content.
2. Related Art
Computer systems function, on one level, through the action of software implementing an operating system. An operating system controls the physical operation of the computer, e.g., electronic processes of the computer's subsystems and components implementing the function of the computer system. Operating systems are sometimes updated, revised, modified, improved, and enhanced. Such changes are incorporated through implementing new versions, e.g., releases of the operating system, and typically, loading the new releases onto a computer system, as it becomes available.
Operating system functionality is characterized and utilized, in one sense, by a list of commands which enable the operating system to control computer system function in accordance with a programmer's intent. These commands are specified and implemented via what is called the operating system's Command Line Interface.
All operating systems deploy a Command Line Interface through one modality or another. The Command Line Interface (CLI) provides the capability of non-programmatically, interactively accessing and controlling the computer system.
Commands are often grouped together in command files. Commands and command files may be changed, added, deleted, modified, substituted, or augmented with each release. Often, as operating system software develops, the list of commands and command files may grow quite large and become very complex. Using, for example, Cisco Systems' Internetworking Operating System™ (IOS)™, an operating system enabling the functionality of routers, e.g., computer systems specializing in internetwork routing, there are approximately 2,000 active commands presently extant at this writing; the number growing still. Each IOS release arrives with new and syntax-enhanced commands.
The documentation of each and every command and command file, including any and all changes, is a crucial responsibility, often shared or tasked between software engineering and technical writing, who may, as a team build webpages and other documents with command functionality as content. Conventionally, command and command file documentation has been performed manually. Manual documentation of commands and command files, even utilizing automated techniques, in accordance with the conventional art, is laborious, time-consuming, and tedious. Also, there has conventionally been no methodology for software engineers to provide command functionality details and updates to technical writers and other documentation team members. This has had the unfortunate consequence of rendering command documentation content acquisition an ad hoc process. This may have further consequences, e.g., errors, confusion, and conflict between the software engineers and technical writers tasked with making the commands and command file contents intelligible to the users of the computer systems. Further, it may also negatively impact system transparency and usability.
Further, as commands change and new commands are added, documents, including webpages, become obsolete. Technical writers responsible for documentation must constantly poll software engineers for new functionality data, command grammar, and new commands, in order to update webpages and other documents accordingly. The problems of the sheer number of commands and command files and growth in this number exacerbates the general industry tendency toward document obsolescence.
The rapidity of progress and change in software generates a documentation problem of growing magnitude.
The significance of documentation of CLI commands is amplified by its crucial importance to users of computer systems. Computer systems are simultaneously useful and versatile because they may be configured for particular tasks or modes of operations by their ultimate or penultimate users. Access to the computer enabling such user configuration is implemented, at one level, via CLI. Thus, user understanding of the functions of the various commands is crucial to a system's transparency and usefulness.
However, the size, complexity, and changing nature of the command list may become confusing, even bewildering for some users, highlighting the importance of accurate and readable command documentation. Further, users require command documentation that is current, transparent, intelligible, and readily accessible and applicable.
A related problem is localization to languages other than English. Localization to languages other than English enhances the usability of a system. Here, language differences may exacerbate both user needs and resultant problems related to documentation, and command syntax.